#pragma once

#include <SFML/Window.hpp>

class Camera;
class Scene;
class Node;
class UIText;

class Graphics
{
public:
	Graphics(void);
	~Graphics(void);

	static Graphics* GetGraphics();

	bool Init(sf::Window* window);
	
	void Render();

	Scene* GetScene() {
		return mScene;
	}

	void SetScene(Scene *scene) {
		mScene = scene;
	}

	Camera* GetCamera() {
		return mCamera;
	}

	sf::Window* GetWindow() {
		return mWindow;
	}

	Node* HitTest(int x, int y);

	UIText* UIHitTest(int x, int y);

private:
	Camera* mCamera;
	Scene* mScene;
	sf::Window* mWindow;
};
